<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>

        // 基本数据类型：Number String Boolean Null undefiend
        // 引用数据类型：object 类型（function array object） 

        let s1 = Symbol();
        let obj2 = {
            name:'小红',
            sex:'女',
            [Symbol('age')]:18,
            [Symbol('money')]:9.5,
        }

        console.log(obj2[Symbol('age')]);

        for(var key in obj2){
            console.log(key);
        }

        // 当使用Symbol作为对象属性时候
        // 1.Symbol声明的属性无法访问；
        // 2.无法被遍历出来

        //获取这个对象的所有的Symbol属性
        console.log(Object.getOwnPropertySymbols(obj2));

        //使用Symbol.for创建Symbol值
        //Symbol.for 检测之前未生成这个name的Symbol，生成Symbol的值
        //如果Symbol 检测到之前生成好的name的Symbol，会返回上次所生成的Symbol
        let s5 = Symbol.for('name');
        let s6 = Symbol.for('name');
        let s7 = Symbol.for('age');
        console.log(s5 === s6); //两者比较所以为true；

        //Symbol.keyFor 返回这个Symbol值得标识符
    </script>
</body>
</html>